/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.apli.haiam.ejb.entidades;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author Informática
 */
@Entity
@Table(name = "far_ingreso_medicamento")
@NamedQueries({
    @NamedQuery(name = "FarIngresoMedicamento.findAll", query = "SELECT f FROM FarIngresoMedicamento f")})
public class FarIngresoMedicamento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_id")
    private Integer fmeId;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_fecha_admision")
    @Temporal(TemporalType.DATE)
    private Date fmeFechaAdmision;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_fecha_aceptacion")
    @Temporal(TemporalType.DATE)
    private Date fmeFechaAceptacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 64)
    @Column(name = "fme_orden_compra")
    private String fmeOrdenCompra;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_subtotal")
    private BigDecimal fmeSubtotal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_total")
    private BigDecimal fmeTotal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_estado")
    private int fmeEstado;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_id_usuario")
    private int fmeIdUsuario;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 128)
    @Column(name = "fme_nombre_usuario")
    private String fmeNombreUsuario;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 32)
    @Column(name = "fme_numero_factura")
    private String fmeNumeroFactura;
    @Size(max = 2147483647)
    @Column(name = "fme_observacion")
    private String fmeObservacion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fme_hora")
    @Temporal(TemporalType.TIME)
    private Date fmeHora;
    @JoinColumn(name = "pro_id", referencedColumnName = "pro_id")
    @ManyToOne(fetch = FetchType.LAZY)
    private FarProovedor farProovedor;
    @OneToMany(mappedBy = "farIngresoMedicamento", fetch = FetchType.LAZY)
    private List<FarIngresoMedicamentoDetalle> farIngresoMedicamentoDetalleList;

    public FarIngresoMedicamento() {
    }

    public FarIngresoMedicamento(Integer fmeId) {
        this.fmeId = fmeId;
    }

    public FarIngresoMedicamento(Integer fmeId, Date fmeFechaAdmision, Date fmeFechaAceptacion, String fmeOrdenCompra, BigDecimal fmeSubtotal, BigDecimal fmeTotal, int fmeEstado, int fmeIdUsuario, String fmeNombreUsuario, String fmeNumeroFactura, Date fmeHora) {
        this.fmeId = fmeId;
        this.fmeFechaAdmision = fmeFechaAdmision;
        this.fmeFechaAceptacion = fmeFechaAceptacion;
        this.fmeOrdenCompra = fmeOrdenCompra;
        this.fmeSubtotal = fmeSubtotal;
        this.fmeTotal = fmeTotal;
        this.fmeEstado = fmeEstado;
        this.fmeIdUsuario = fmeIdUsuario;
        this.fmeNombreUsuario = fmeNombreUsuario;
        this.fmeNumeroFactura = fmeNumeroFactura;
        this.fmeHora = fmeHora;
    }

    public Integer getFmeId() {
        return fmeId;
    }

    public void setFmeId(Integer fmeId) {
        this.fmeId = fmeId;
    }

    public Date getFmeFechaAdmision() {
        return fmeFechaAdmision;
    }

    public void setFmeFechaAdmision(Date fmeFechaAdmision) {
        this.fmeFechaAdmision = fmeFechaAdmision;
    }

    public Date getFmeFechaAceptacion() {
        return fmeFechaAceptacion;
    }

    public void setFmeFechaAceptacion(Date fmeFechaAceptacion) {
        this.fmeFechaAceptacion = fmeFechaAceptacion;
    }

    public String getFmeOrdenCompra() {
        return fmeOrdenCompra;
    }

    public void setFmeOrdenCompra(String fmeOrdenCompra) {
        this.fmeOrdenCompra = fmeOrdenCompra;
    }

    public BigDecimal getFmeSubtotal() {
        return fmeSubtotal;
    }

    public void setFmeSubtotal(BigDecimal fmeSubtotal) {
        this.fmeSubtotal = fmeSubtotal;
    }

    public BigDecimal getFmeTotal() {
        return fmeTotal;
    }

    public void setFmeTotal(BigDecimal fmeTotal) {
        this.fmeTotal = fmeTotal;
    }

    public int getFmeEstado() {
        return fmeEstado;
    }

    public void setFmeEstado(int fmeEstado) {
        this.fmeEstado = fmeEstado;
    }

    public int getFmeIdUsuario() {
        return fmeIdUsuario;
    }

    public void setFmeIdUsuario(int fmeIdUsuario) {
        this.fmeIdUsuario = fmeIdUsuario;
    }

    public String getFmeNombreUsuario() {
        return fmeNombreUsuario;
    }

    public void setFmeNombreUsuario(String fmeNombreUsuario) {
        this.fmeNombreUsuario = fmeNombreUsuario;
    }

    public String getFmeNumeroFactura() {
        return fmeNumeroFactura;
    }

    public void setFmeNumeroFactura(String fmeNumeroFactura) {
        this.fmeNumeroFactura = fmeNumeroFactura;
    }

    public String getFmeObservacion() {
        return fmeObservacion;
    }

    public void setFmeObservacion(String fmeObservacion) {
        this.fmeObservacion = fmeObservacion;
    }

    public Date getFmeHora() {
        return fmeHora;
    }

    public void setFmeHora(Date fmeHora) {
        this.fmeHora = fmeHora;
    }

    public FarProovedor getFarProovedor() {
        return farProovedor;
    }

    public void setFarProovedor(FarProovedor farProovedor) {
        this.farProovedor = farProovedor;
    }

    public List<FarIngresoMedicamentoDetalle> getFarIngresoMedicamentoDetalleList() {
        return farIngresoMedicamentoDetalleList;
    }

    public void setFarIngresoMedicamentoDetalleList(List<FarIngresoMedicamentoDetalle> farIngresoMedicamentoDetalleList) {
        this.farIngresoMedicamentoDetalleList = farIngresoMedicamentoDetalleList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (fmeId != null ? fmeId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FarIngresoMedicamento)) {
            return false;
        }
        FarIngresoMedicamento other = (FarIngresoMedicamento) object;
        if ((this.fmeId == null && other.fmeId != null) || (this.fmeId != null && !this.fmeId.equals(other.fmeId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.apli.haiam.ejb.entidades.FarIngresoMedicamento[ fmeId=" + fmeId + " ]";
    }
    
}
